import type { HttpResponseData } from "@/utils/http/types";

export interface IQuery {
  /** 每页显示条目个数 */
  pageSize?: number;
  /** 当前页数 */
  currentPage?: number;
  // 动态属性
  [prop: string]: any;
}

export interface ResultTable<T = any> extends IQuery {
  /** 列表数据 */
  dataList: Array<T>;
  /** 总条目数 */
  total?: number;
}

export interface TableOptions {
  // 参数
  query: IQuery;
  // 接口
  readonly queryApi: (query: IQuery) => Promise<HttpResponseData<ResultTable>>;
  // 是否自动加载
  autoLoad?: boolean;
  // 分页参数
}

export const ENABLE = 1;
export const UNENABLE = 0;
export type Status = typeof ENABLE | typeof UNENABLE;
